package com.hq.ims.data.vo;

import com.hq.authority.utils.AppUtils;
import com.hq.ims.data.config.verification.VdAdd;
import com.hq.ims.data.config.verification.VdEdit;
import com.hq.ims.data.entity.Company;
import com.hq.ims.data.entity.CompanyCheck;
import com.hq.ims.data.entity.CompanyServiceAreaHistory;
import com.hq.ims.data.entity.CompanyServiceTypeHistory;
import com.hq.ims.data.entityenum.EnumCompanyLevel;
import com.hq.ims.data.entityenum.EnumCompanyStatus;
import com.hq.ims.data.vo.auth.BaseRowAuthVo;
import com.hq.utils.util.ListUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;


/**
 * @author 蒋柏平
 * @since 20240927
 */
@Mapper
public interface CompanyCheckMapstruct {

    CompanyCheckMapstruct INSTANCE = Mappers.getMapper(CompanyCheckMapstruct.class);

    //-------------------------------- 转换VO类 --------------------------------


    //-------------------------------- CompanyTreeVo --------------------------------



    //-------------------------------- 以下为自定义类[输出对象] --------------------------------

    @ApiModel(value = "原始对象的扩展类")
    @Data
    class CompanyCheckVo extends CompanyCheck {

        @ApiModelProperty(value = "证件照片")
        @NotEmpty(message = "证件照片不能为空", groups = {VdAdd.class, VdEdit.class})
        private List<AppFileMapstruct.FileVo> companyIdFiles;

        @ApiModelProperty(value = "服务地区")
        @NotBlank(message = "服务地区不能为空", groups = {VdAdd.class, VdEdit.class})
        private List<CompanyServiceAreaHistory> serviceArea;

        @ApiModelProperty(value = "产业标记")
        @NotBlank(message = "产业标记不能为空", groups = {VdAdd.class, VdEdit.class})
        private List<CompanyServiceTypeHistory> serviceType;

        @ApiModelProperty(value = "规则说明")
        @NotEmpty(message = "规则说明不能为空", groups = {VdAdd.class, VdEdit.class})
        private CompanyRuleHistoryMapstruct.CompanyRuleHistoryVo companyRuleFiles;

        @ApiModelProperty(value = "企业资质")
        @NotEmpty(message = "企业资质不能为空", groups = {VdAdd.class, VdEdit.class})
        private List<CompanyAptitudeHistoryMapstruct.CompanyAptitudeHistoryVo> companyAptitudeHistoryVos;

        @ApiModelProperty(value = "上级组织")
        private String parentName;

        @ApiModelProperty(value = "拒绝理由")
        private String rejectReason;



    }



    //-------------------------------- 以下为自定义类[输入对象] --------------------------------



    //-------------------------------- springboot验证标识 --------------------------------

}
